Since the train loss is consistently decreasing, it implies that your model has low bias. The plateued valid loss could indicate high variance. Furthermore, you have tried standard methods to avoid overfitting. Therefore, this seems to be the best you can do with the current model.
Below are three possible conclusions.

The train dataset size is small. No matter how well you learn on train data, you are unable to generalize to new distributions - > obtain more data.
The valid dataset could be of a vastly different distribution as compared to the train dataset - - > Try cross validation and verify whether it is indeed the size of the dataset rather than its distribution.
There is a possibility of a mixup in the testloader. Just before you give the input to the model, check and see whether you are giving in the image correctly. Make sure you apply the same scaling that was done during training. - - > fix if present.

Try these out and see how it goes.