Look up ReplayGain. It analyzes and then adds metadata about the peak gains of each file, to the file, without the need to re-encode anything. Foobar2k natively supports it. Hopefully Plex also has support for ReplayGain.
This is the first thing I thought of. ReplayGain has been how this has been done for decades. It doesn't need to reencode the file, which will reduce quality, and there are programs that will scan folders to calculate the gain for each file. Other options suggested that reencode seem unnecessary and inferior.