MacBook Pro Thunderbolt 3 Port Technical Details
Thunderbolt support isn't built into the CPU and requires a Thunderbolt controller. Each controller may host two Thunderbolt 3 ports. The two port model has one controller and the four port model has two. Each controller requires 4 PCI lanes to function at full speed, and Intel’s CPUs only have a limited number of them.
The right side ports on the 2016/2017 13" Touch Bar MBP were bandwidth limited, due to only two PCI lanes being allocated. Intel’s 6th/7th gen U series CPUs in the 2016/2017 13” models could use at most 12 lanes through the platform controller hub. Apple chose to allocate four PCI lanes to the NVMe SSD, four to the left Thunderbolt 3 ports, two to the right Thunderbolt 3 ports, and one lane to the wireless card. If you're using a 13-inch MacBook Pro from 2016 or 2017, always plug eGPUs and other high-performance devices into the left-hand ports for maximum data throughput. Starting with the 2018 refresh, Intel U processors provided up to 16 PCI lanes, which allowed equal bandwidth to all four Thunderbolt 3 ports.
It gets even more complicated when you compare to the 15-inch and 16-inch models. The 15-inch and 16-inch MacBook Pros use Intel’s HQ CPUs. These are different than the U processors in the 13-inch in that the 16 PCI lanes are straight off the CPU. It also has additional PCI lanes via the platform controller hub (PCH, chipset and southbridge). U series CPUs only have PCI lanes through PCH, no direct attachment to CPU. What this means is that eGPUs and other high end Thunderbolt attached devices are going to perform better on the 15-inch and 16-inch.
On the 15-inch, Apple attached x8 to the dGPU, x4 to the left Thunderbolt 3 controller, and x4 to the right Thunderbolt 3 controller. Through the PCH, Apple attached x4 to the NVMe SSD controller and x1 to the wireless card. The direct Thunderbolt 3 to CPU connection is highly desirable because it cuts out additional latency compared to a typical TB3 -> PCH -> CPU connection.