You can't shrink a mounted ext4, so you have to do this from e.g., a live CD.
First, you shrink the logical volume, including resizing the filesystem. Note that this will take a while! It may have to move a lot of data.
lvreduce -r -L 290G «vg-name»/«lv-name»
-r (which tells it to resize the filesystem first, this is critical to not suffer data loss) and I also asked for a bit smaller, just to be sure no annoying rounding errors (which would mostly be rounding by the admin — e.g., did you mean 300 GiB or 300GB?). The LVM tools are precise, you could do this exactly if you want... but it's probably easier just to re-grow the filesystem at the end.
Now, you can try
vgreduce to see if it can get rid of any unused volume groups.
vgreduce -a «vg-name» will attempt to remove all PVs from the volume group, but will only succeed with empty ones. If this removes two, great, you're done.
If that didn't work, you'll need to move the data, which is done with
pvmove. The first argument to
pvmove is the PV you want to move data from; the second (optional) argument is where to move to. If you omit the second, LVM picks somewhere (other than where you moved it from). After pvmove, you can then try
vgreduce «vg-name» «path-to-pv» to remove it from the volume group; again this only succeeds if there is no data on it.
After removing them from the VG, you can use
pvremove to remove the LVM "labels" from the disks. Also, you must securely wipe the disks if the data previously on there needs to remain private; LVM and resize2fs has copied the data off, it has not securely erased it.