If you want to power the mcu from small batteries, consider whether you need to run it at full Arduino speed (16MHz). I run my battery-powered projects at 8MHz, and you can use even lower clock speeds for lower power consumption.
If you don't want to use a crystal and capacitors with the mcu and don't need accurate timing, buy a blank atmega328p chip and program it by running the ArduinoISP sketch on your Arduino. You can run it at its default frequency of 1MHz, or at 8MHz if you program the fuses.
Sir I have no idea how to do the second part. Is there any instruction to change the clock speed on the Arduino board? After programming, I could just take the controller off and use it, since 8 MHz would suffice. I don't have all the tools to program the blank atmega chip.