In the application note you linked to, the only thing I found that might concern drain protection is the gate-to-drain clamp diodes. However these are really for mitigating large voltage excursions that may otherwise cause gate isolation to fail. In fact, I would suggest that those clamps will even expose whatever is driving the gate to the extreme drain voltages generated by the relay coil. In your case, that's a puny, fragile microcontroller. I do not consider those devices to be a good choice for your application.
You still need to quench those coil voltage spikes yourself, somehow.
Your module clearly has access to battery +12V, ground (chassis, battery 0V) and the top end of the relay coil. I can't see why you are unable to install a diode (inside your own module) between ground and the relay's coil connection. It would still effectively be across the relay coil, even though it may be physically located far from the actual relay. There might even be an argument for installing the diode close to the things it is trying to protect:
Whatever that "3Vout" is on the microcontroller, are you sure you want it connected to +12V? It seems foolish to connect anything in a microcontroller to something greater than its own supply, though I may be missing something.
Lastly, the microcontroller output will need to be an open drain, or high impedance, in order to allow the 10k pullup resistor to raise the FET's gate voltage to 12V. Otherwise you will not be able to switch the FET (and the relay) off. This is the curse of the high-side transistor switch.
In light of your comments, and the video link you added to to the question, here's an addendum:
The video you mentioned does obliquely refer to the need for 12V to switch off the FET - he says that to control this high-side P-channel MOSFET switch using an Arduino requires an isolated supply, and that you must connect the Arduino's +5V supply and the motor's +12V supply together, to "raise" the Arduino's logic outputs to the levels required by the the MOSFET's gate.
However, the "Riorand" converter module, like most that use the LM2596, probably has the -Vi and -Vo terminals connected together, meaning that it is not isolated.
In your circuit, then, you are implicitly connecting the Arduino's 0V ground to the car's ground, via the buck converter, which in my opinion is the correct thing to do. It does mean, though, that the digital outputs of the Arduino cannot attain the +12V level needed to switch off the FET, and you must somehow translate the 0V to 5V output from the Arduino into a 0V to 12V signal for the MOSFET gate.
And you must dispense with that "3Vout to +12V" nonsense.
It's not hard to do, with another transistor, as Spehro Pefhany has demonstrated in his answer - though I think his value for R5 (and probably R6) is unnecessarily low in this application. For completeness, I include here an adaptation of Spehro Pefhany's use of a BJT to perform this level translation:
To see why all this is necessary, first understand that the MOSFET Q1's gate must be near +12V in order to switch it off. That means whatever source of voltage is driving the gate must be capable of outputting +12V.
If, as suggested in the video, the Arduino's positive supply is connected to the battery positive, +12V, and you somehow manage to provide the Arduino's ground pin with a voltage 5V below that (i.e. +7V), then its digital output levels are effectively +12V and +7V, which will work fine for the MOSFET.
However, you cannot obtain +7V from the LM2596 (at least, not in a way you can use here). It cannot provide 5V lower than +12V, it can only give you 5V higher than 0V. This is what is meant by it not being "isolated". So you are forced to share a common ground between the vehicle (chassis, battery negative) and the Arduino, whose outputs will therefore be 0V or +5V, not +7V or +12V.
You need a 12V signal to switch the MOSFET off, so Q2's function is to translate (and invert) the Arduino's 0V and +5V output levels into +12V and 0V respectively.