I do not agree with Ignacio.
If you have LEDs with a nominal voltage of let's say 2V, you have to get rid of 1V if you operate them at a 3V battery. 20 with 20mA LEDs in parallel means 400mA, and so, you need a resistor of 2,5Ohm. but according to this datasheet from energizer for an AA battery, the internal resistance is only 0.15-0.3Ohm for a single cell, so up to 0.6Ohm in total.
In addition, LEDs in the "low voltage range" usually need less that 2V, so the resistor needed has to be larger.
It is more likely that you have those LEDs which need voltages slightly above 3V. In this case, you can directly operate them at a 3V supply without a resistor.
It is a common assumption that you always need a resistor. There is a good reason for it: If you have a 3.2V LED, you can connect it to 3.2V, and it will draw 20mA. Everything is fine, huh? But if the nominal voltage is lower due to part spread or higher temperature, the LED will draw a much higher current than 20mA, and will blow up.
But if you operate your 3.2V LED at 3.0V, you are safe. The current is lower than 20mA, and the LEDs are darker. but this may be desired for a chrismas light.
To test what I said, measure the clamp voltage of the battery when the LEDs are connected. If Ignacio is right, you will measure less than 2V. If I'm right, you will measure 3V.
Anyhow, it is right, you can not get 400mA out of your Arduino and need some additional switching. I also do not recommend a single resistor to operate them because if one LED blows up, the others draw more current and will follow soon. You can generate 3V from 5V e.g. using an LM317. This way, you are in the "safe range" I mentioned above.