No and yes.
A dual-core CPU as first produced by Intel really was only 2 CPU's on a single die.
However a real multicore CPU has multiple calculation cores while sharing certain parts (e.g. a common L3 cache or the ALU) and using a ultra-high-speed inter-core communication system
Furthermore a x86 CPU is huge due to it's sheer size of internal high-clock memory, X86 instruction set with additions like 64-bit, Hyperthreading,....
ARM CPU's as found in your mobile devices are a lot smaller due to a different (smaller) instruction set and being optimized for size, not high performance.
A GPU core on the other hand is even smaller (only several thousand transistors as compared to several millions in an average CPU) as it has only one and one purpose alone; mathematic calculations.
At least that was true untl OpenCL and Cuda came along, now they can execute -with great performance loss as compared to int and float calculations- other commands.