With multiple uarts (and possibly more than 2 if you move to another similar avr with more pins), it is nice to get something in place that can handle all the uarts and all the possible pins. It then becomes code which is created one time only and allows for easier changing of uarts/pins. These newer avr's are ideal for doing this since the peripherals are an 'instance' type (register layout is the same for each instance of a peripheral).
Something such as-
https://godbolt.org/z/f5axdPjWjThere are various ways to go about doing this, and this version is one way to do it. The use of print/scan is optional and can be bypassed (I rarely use scanf, so just added it to show it can also be done similar to the print function). The use of print (printf) will simplify uart output in a big way, and for the avr it costs about 1.5k of code but is a one time cost (once used, use everywhere you can). If you end up going to buffer use (interrupts), its not much more work to get the code to deal with a buffer instead of directly accessing the rx/txdata registers (isr code will deal with the buffer).
Using C++ is a little nicer for various reasons, but if not your thing you just live without it-
https://godbolt.org/z/89Pjfvzcvfyi- portmux is not CCP protected.
edit- the scanf code is wrong as it is using non-blocking uart reads (with -1 meaning no data available), but scanf has no provision for non-blocking reads so would need to provide a FILE.get function that blocks on rx data available.