Replacing switch without transistors
There's no reason to drive the GPIO pins high at all. Just configure them as open-drain &mdash; drive the pin low when you want to activate the corresponding "button", and tristate it otherwise.

As long as the fob voltage is not higher than the MCU voltage, it will be fine.

And running the fob at 3.3 V should be fine, too.