why MOSFET output is oscillating like this ?
This is almost definitely simulator noise.

The NMOS has \$V_{tn}=430\$mV, while for the PMOS you have \$V_{tp}=-400\$mV.

Since \$V_{GS_n}=0\$ the NMOS is quite off, it might have some leakage current but hopefully a few tenth nano amps.

For the PMOS we have \$V_{GS_p}=-370\$mV, so the transistor is not off, nor on. This working region is called subthreshold region, and transistors can be (and are) used quite a lot in this region since transconductance can get very high.

Long story short, the PMOS would be more than happy to carry some drain current, but that would probably be a couple of orders of magnitude higher than the leakage current of the NMOS.

What happens then? Both transistors are working with virtually no drain current, the NMOS characteristic is a flat line where \$I_D\approx0\$ so \$V_{DS_n}\$ can theoretically be whatever voltage suits the PMOS... But that's true for the PMOS too! What happens is that the drain voltage of the transistors can be almost any voltage in the \$0\$V\$\div5\$V range. The simulator has to guess.

Now, simulators can be pretty darn good at guessing, really, any sort of magic happens when you run simulations, but that usually happens in transient simulations, when to make less calculations guessing which the next point will be is a good thing.

Here just about any voltage would be good, try to help the simulator adding a big resistor, some \$10^{12}\Omega\$, between the drains and some voltage, possibly ground, \$\mathrm{V_{DD}}\$ or whatever. You'll probably see the noise gone.

About the question in the comments:


  but simulator noise shouldn't give a predicted graph, should it ?


Not at all. Simulators are predictable machines built to produce predictable results. Even if some sort of randomness is needed, like in Monte Carlo sweeps, the user can decide to keep the simulation seed in order to be able to run it again in the very same conditions. There's no randomness otherwise, in other words if you feed a simulator some input data you will always get the same output. And that's why you see such a nice pattern, that's the simulator trying to understand what's going on, and it does so using precise mathematical tools and approximations that lead to an oscillating pattern. Just think of the various iterative methods used to approximate the solution of intersection between curves.