I'm on iPhone with 15.3.1. This fixed this issue for me today - choosing Settings / Contacts / Display Order and then switching from firstname surname to ‘last name, first name’.
Absurd but it worked for me & I’ve tried every other thing I’ve read online: turning on/off phone, cellular, FaceTime, iCloud; deleting contacts & building contact from scratch. None worked. But after forcing a re-order of the contacts display order, the FaceTime field reappeared on my boyfriend’s Contact card & I was able to FaceTime video call him thank god.
Sharing in the hope this also solves this headache for another. Am reporting separately to Apple as this issue needs to be resolved permanently.