There are several ways of doing this.
Use the GUI program Gparted to form a partition from the free space, write a filesystem to it. Then allocate a mount point for the new partition and write a configuration line in the /etc/fstab file to mount it at boot so it's immediately available for use on booting up.
Another route is to try and make the free space contiguous with Partition1 which involves moving the current Partition2 (looks like the EFI partition) and swap partition to the end of the disk. Gparted can do that. There's an example here:
https://www.baeldung.com/linux/resize-partitions. This process is best accomplished from a live disk which can run Gparted on the unbooted, hence unmounted, installation.
Another alternative is to use LVM which would enable changing partition sizes quite flexibly. You would need to convert the existing root filesystem to a LVM partition type and with a few other adjustments then have flexibility in resizing all partitions. There's a learning curve to it. It may be overkill for a home system that only needs one change such as described in this situation, but it can accomplish the task. Perhaps have a look here to see what's involved as an initial step:
https://www.system-rescue.org/lvm-guide-en/Moving-the-linux-rootfs-to-an-LVM-volume/.
There are numerous other means of achieving the task with various cli tools including fdisk, gdisk, mkefs, linux utilities and any text editor.
Bear in mind, when one chooses any means to accomplish tasks such as these, one needs to know what one is doing. Mistakes can ruin data, so before any actual processing, it's advisable to back up what one doesn't wish to lose.