thank you Mark for replying.
So I can’t program atmega328 (Like Atmel MEGA16U2 is programmed as usb driver for arduino uno or any other usb driver microchip) so I could use two pins of Atmega328 as USB Data pins, and use it as usb driver which will be connected to second atmega328?
Yes, but you will most likely lose the arduino IDE automatic reset function and will have to use the ‘well timed manual reset’ method to upload to the second arduino. The first arduino should have a jumper from ground to reset so that it can’t interfere with the serial data pins. Then wiring between the two arduino is pins D0-D0, D1-D1, ground-ground pin and 5V to 5V pins.
Added note: If you remove the avr chip from the first arduino and don’t connect reset to ground then add a reset to reset wire between the two arduinos the auto-reset function should still function for the second arduino.