Buck using discretes - Driving p-MOSFET using n-MOSFET
The reason the FET turns off so slowly is because you only have 2 k&Omega; pulling it high.  Take a look at the datasheet for that FET.  It should show you the actual and effective gate capacitance when switching.  The relatively weak 2 k&Omega; pullup is working against that capacitance.

Here is a trick I sometimes use in this situation:



The double emitter follower is basically a impedance buffer.  The current to charge and discharge the gate capacitance is handled by Q1 and Q2, so the signal at GATE can be much higher impedance and still switch the FET quickly.  Note that this double emitter follower will loose 700 mV or so on each end.  That is fine for a FET that switches over a 10 V gate range.  It will still be "off" with 700 mV on the gate just as well as with 0.  At the other end, its usually easy enough to drive GATE the extra 700 mV further than what you want to make sure shows up on the gate of Q3.