I can charge my Fairphone 3 just fine on USB ports, and I can access my SD card just fine from the Windows PCs I can get my hands on.
This is not normal.
If it was me, I would try a different cable and a different port.
Apart from that, heavy usage of the phone while charging could prevent charging because the net gain of charging the battery while using up the battery could be close to zero. But I think you would notice this, so it seems unlikely.
Since the phone is new, I think we can disregard dust or lint in the port.
No.
I don’t know what P2P is supposed to mean in this context, probably we are talking about the PTP mode for the USB connection. This would be intended for pictures. I read here and there that people still use that, but I’m not sure why (meaning I never had a use case for that, it could be perfectly fine for some purpose I simply never came across).
The usual connection mode for file transfer is MTP.
Normally, once you connect the phone to a computer, there should be a notification informing you that the phone is charging. If you tap the notification, you can set a different mode for the USB connection, first on the “Use USB for” list should be “File transfer” now … this is the MTP mode.
Earlier Android versions listed it as such, but it doesn’t matter much how it’s called.
MTP has to be set up correctly in the computer OS, too. This works automatically and seamlessly for most people, but stuff can get in the way.
I can’t say much about Linux, but I have seen driver trouble preventing MTP to work correctly on Windows, here’s a generic driver repair.
Normally it isn’t, but this of course doesn’t help you.
What you describe overall could also be caused by a malfunctioning SD card or connection trouble.
Perhaps try to reseat the card in the slot and let the phone format it again. Make sure you let the phone handle it as external storage.