Apple has been shifting away from performance cores with each generation. M1 Pro: 75-80% P-cores; M2 Pro: 60-67% P-cores; M3 Pro: 45-50% P-cores.
This shows up when you look at Geekbench results. A 10-core M2 Pro (6+4) gets 12,100 while a 10-core M1 Pro (8+2) gets 12,202. The 12-core M2 Pro (8+4) gets 14,221. That's a 16.5% increase from having 20% more cores. In some ways, this feels like an odd result. Adding two additional M2 P-cores gets Apple a comparatively small result over the 10-core M2 Pro (less than the average core performance). However, adding two efficiency cores over the M1 Pro gives them the same 16.5% boost over the 8+2 M1 Pro.
If I had to guess, maybe it's thermal throttling when running the benchmark. If the additional P-cores can't truly be P-cores under 100% load, then their impact shows up less. Likewise, if the E-cores can match P-core performance under heavy thermal load, then it could show up as being roughly equivalent in the benchmark.
I wonder if real-world scenarios end up differing from benchmarks in a meaningful way around this. For example, core-pinning can be useful for warm caches and in a real-world scenario you might have a process the OS tries to pin to P-core-1 that has spikes in utilization while another process is pinned to P-core-2 with similar spikes. So both get the performance of a P-core and warm caches while the thermal load isn't that high so the P-cores are still at their peak performance (unlike a benchmark that's trying to use all cores as much as possible at the same time).
Maybe this is a business decision more than something based around how the chip performs. The big selling point of the M1/M2 Max was graphics (maybe the extra RAM as well). You could get the same CPU in the Pro or Max. Now the M3 Pro is a 5+6 or 6+6 CPU while the M3 Max is 10+4. 67-100% more performance cores becomes a selling point for the M3 Max even for those who might not care about graphics as much.