Is it possible to get 2 UART serial ports on an UNO?

On an Uno we get 1 UART port shared with the USB interface. Therefore I'm not able to control a second UART device separately. Is it possible to use e.g. pin 2/3 for a second UART port?

I really want to do this without getting a MEGA as the code will be ported to an ATMega328p device.

(deleted)

You can't get another hardware UART but you can do it via software. This has worse performance and higher overhead than hardware but might still be a good solution.

You already have the official SoftwareSerial library installed with the Arduino IDE. You can find documentation for it here:

If you end up running into the limitations of that library, there are some 3rd party alternatives that might be better suited for your needs. This provides an overview of the most popular options:

Because UNO has only one hardware UART Port which is permanently engaged with Serial Monitor and IDE, we need a way of creating another UART Port using software instructions to connect a second UART Port driven device like Bluetooth Module, HC12 Radio Module, and the like. This software simulated UART Port is known as Software UART Port (SUART).

1. The SUART can be created by including the following instructions in the sketch:

#include<SoftwareSerial.h>
SoftwareSerial mySUART (2, 3);   //DPin-2 will work as SRX-pin, and DPin-3 will work as STX-pin; S for soft
mySUART.begin(9600);   //data transfer rate of SUART Port = 9600 Bd

2. All data exchange instructions of the hardware UART Port (simply UART) are also valid for SUART Port except that SUART Port does not support the void serialEvent(){} routine which is exclusively reserved for hardware UART Port.

3. Typical application of SUART Port