Well, I can see where your confusion may be coming from. After all, both have 2 cores, right? Well it's not as simple as that. Basically, the difference comes down to how new each one is, and newer means more efficient.
The Core 2 Duo refers to a line of 2-core Intel CPUs which came out between 2006 and 2008. The Core i3 refers to a line of 2-core Intel CPUs which have been coming out since 2010. At the time of release, Core 2 Duo's ranged from low-end to mid-range end processors, while most all i3's lean towards the lower end of the spectrum.
Basically what you need to know is that through advancing technology, the Core i3 series is quite a lot more powerful than the older Core 2 Duo series. They're more powerful and more energy efficient, with better architecture, newer techniques, higher clock speeds, and better manufacturing techniques. Today, $120 i3 CPUs easily beat the more mid-range Core 2 Duos which once cost upwards of $200.
The cache aspect is taken into consideration with regards to the average performance increase since the average is based on actual benchmarks.
The additional cache only helps performance if the program can make use of the original cache.
For example, the difference between the Q9400 and Q9450 is an L2 cache of 6MB vs 12MB. Benchmarks showed that there was barely any performance difference in games (between 0 and less than 1). However, video encoding benchmarks showed between 7% - 9% improvement in performance.
L3 cache is slower than L2 cache because it is the last cache that is checked before going to system RAM.