First question, Since we can control the volts that we can throw via PWM pins on Arduino, can we use it to power the 3.3v ESP8266?
No. The ESP8266 draws far too much current (in excess of 200mA) to use anything other than a proper supply.
Second question, Can we also use these PWM pins as Software serial pins i.e. they will be sending instructions at 3.3v?
We'll drop the "also", since we've decided that you're not doing that.
You can use SoftwareSerial on any GPIO pins you like, provided the RX pin supports pin change interrupts.