LM358 - as analog voltage mapper 3.3V to 5V
The LM358 is not a rail-to-rail output op-amp, and as such cannot be expected to drive near the rails. The output voltage high (Voh) is specified as 26V with a supply of 30V and a load of 2k (so, 4V below the rail). Therefore you should not expect it to drive anywhere near 5V with a 5V supply.

The easiest solution is to choose a RRIO (rail-to-rail input output) op-amp which is fully specified at 5V (there are many to choose from).