Yubikeys have a Totp functionality as far as I remember. You will find more information on their website. (Edit: this should be the needed instructions)
Never tried it but I am guessing, this is the way it should work: it‘s the same as any other TOTP authentication app, just that the string from which the totp is derived, needs to be stored on the yubikey. On Bitwarden you would use their free Totp tier, which should provide you with that string.
Honestly, i would pay the 10$/y to use WebAuthn, support Bitwardens development, and make my own life easier