esp8266 SoftwareSerial reading incorrect values

Is there any way I can read the input as if it was a 3.3v, with just software changes?

No

The easiest thing to try would be a level shifter using 2 resistors