At this stage there is no point changing the filter or tank because you need to treat the fish first. If the OP buys a new tank and filter and the fish dies, they have wasted money. A 3 gallon tank will be fine for a while. The fish isn't getting any bigger and the main issue now is the eye and teaching them about water quality and the filter cycle.
I would remove the 2 ornaments and replace them with live or silk plants. This will give the fish more room to move about and less chance of it being injured on the ornaments.
Water Sprite (Ceratopteris thalictroides/ cornuta) is a good floating plant for Bettas.
-------------------
WHAT TO DO NOW
Wipe the inside of the glass down with a clean fish sponge. This removes the biofilm on the glass and the biofilm will contain lots of harmful bacteria, fungus, protozoans and various other microscopic life forms.
Do a 75% water change and gravel clean the substrate every day for a week. The water changes and gravel cleaning will reduce the number of disease organisms in the water and provide a cleaner environment for the fish to recover in. It also removes a lot of the gunk and this means any medication can work on treating the fish instead of being wasted killing the pathogens in the gunk.
Make sure any new water is free of chlorine/ chloramine before it is added to the tank.
Clean the filter if it hasn't been done in the last 2 weeks. However, if the filter is less than 6 weeks old, do not clean it. Wash the filter materials/ media in a bucket of tank water and re-use them. Tip the bucket of dirty water on the garden/ lawn. Cleaning the filter means less gunk and cleaner water with fewer pathogens.
Increase surface turbulence/ aeration to maximise the dissolved oxygen in the water.
See how the eye looks in a week. If there's no improvement, add some salt, (see directions below).
-------------------
SALT
You can add rock salt (often sold as aquarium salt), sea salt, or swimming pool salt to the aquarium at the dose rate of 1 heaped tablespoon per 20 litres of water. If there is no improvement after 48 hours you can double that dose rate so there is 2 heaped tablespoons of salt per 20 litres.
Keep the salt level like this for at least 2 weeks but no longer than 4 weeks otherwise kidney damage can occur. Kidney damage is more likely to occur in fish from soft water (tetras, Corydoras, angelfish, Bettas & gouramis, loaches) that are exposed to high levels of salt for an extended period of time, and is not an issue with livebearers, rainbowfish or other salt tolerant species.
The salt will not affect the beneficial filter bacteria, fish, plants, shrimp or snails.
After you use salt and the fish have recovered, you do a 10% water change each day for a week using only fresh water that has been dechlorinated. Then do a 20% water change each day for a week. Then you can do bigger water changes after that. This dilutes the salt out of the tank slowly so it doesn't harm the fish.
If you do water changes while using salt, you need to treat the new water with salt before adding it to the tank. This will keep the salt level stable in the tank and minimise stress on the fish.
When you first add salt, add the salt to a small bucket of tank water and dissolve the salt. Then slowly pour the salt water into the tank near the filter outlet. Add the salt over a couple of minutes.