Propensity Score Matching for Balanced Datasets
MatchIt has several options to accomplish this. Here are a few:

Pair matching with a caliper (i.e., method = "nearest" or "genetic" and caliper specified). Only the closest units will be paired, leaving the unpaired units out of the final analysis. This reduces your sample size but restricts the sample to a region with a good overlap and often good resulting covariate balance but changes the estimand to one unspecified.

Pair matching with replacement (i.e., method = "nearest" or "genetic" and replace = TRUE). Each treated unit will be matched to a control unit, but control units can be reused, so it doesn't matter how many there are. Matching with replacement can also be used when there are more treated than control units. If no caliper is used, this method retains the ATT as the target estimand.

Full matching (i.e., method = "full"). This forms subclasses of all units in an optimal way and then produces matching weights. No units are discarded, and it doesn't matter how many units of each treatment group there are. Any estimand can be validly targeted with this method.


Make sure you read the MatchIt vignettes to understand these methods and how to estimate effects using them. They are all explained in detail.
If none of these methods are giving you balance, you might just have an inherently imbalanced sample. Weighting methods (available in the WeightIt package) might be a good alternative. You should try many methods of matching and weighting to find the one that yields the best balance while retaining precision and the target estimand (if desired).
In the examples I have found on PSM, the datasets are unbalanced. In other words, there is a small treatment group and a larger control group, from which the observations that are closest to treatment group are drawn. Through this process, we get a data set with the same number of observations for both treatment and control groups. But what if the observations in the treatment and control group are equal?
I have a small data set with 600 observations; 300 treatment and 300 control. I want to extract observations which are not significantly different with regards to some variables across the two groups of treatment and control. How can I do that?
In other words, I have to restrictions:
1 - I want my two groups to be statistically insignificant with regards to certain variables.
2- I want to keep as many data points as possible without violating 1.
I have worked with MatchIt in R but it does not seem to have such option.