Pretty bad idea to try what you suggested although you are correct that it might work. The problem is that the Vgs threshold is very poorly specified. Generally you want off to be well below it and on to be well above it.
Generally a good way to do what you want is to simply add an NFET to drive the PFET. Take your 3.3V I/O and drive a small "Logic Level" NFET gate with its drain pulled up to 5V. Then connect the drain to the PFET gate. Your I/O will do a good job turning on/off the NFET and the NFET will do a good job turning on/off the PFET.
The other thing, suggested above, is to get a proper "Load Switch". For 5V there are tons of parts specified for switching 5V USB power (0.5A to 2A) on/off from a 3.3V input signal. And they come with bells and whistles like current limits, thermal shutoff etc.
Try this:
https://www.ti.com/lsds/ti/power-management/usb-power-and-load-switches-products.page