which is better and why? A 3Mhz from PLL or 3Mhz from IMO?
The PLL cannot generate a frequency on its own. So the question to this answer might be 'only the IMO can be used as generator'.
The PLL might introduce a small jitter to the generated clock, but I doubt it will be noticeable for normal uses.
For those interested, IMO stands for Internal Main Oscillator.
This might assist -
http://www.cypress.com/documentation/application-notes/an60631-psoc-3-and-psoc-5lp-clocking-resources AN60631 - PSoC® 3 and PSoC 5LP Clocking Resources
Note that PLL can output only above > 24 MHz.
As Dana pointed out, AN60631 describes all clock sources. IMO provides only few frequencies, they are 3 MHz, 6 MHz, 12 MHz, 24 MHz, 48 MHz, 62 MHz and 74 MHz. While PLL can generated ratio multile of it's souce clock. PLL can provide you clock between 24 MHz to 80 MHz.
You can also note below statement from AN60631.
"The PLL introduces no frequency inaccuracy, and consumes less power at a given output frequency than the IMO. Thus, when a clock is desired within the operational range of the PLL, it is recommended that the IMO be run at the minimum speed of 3 MHz, and the PLL be used to generate the desired output frequency. The resulting PLL output clock will be within the accuracy specification percentages of the input clock"
A summary of PSOC III clocking, attached.