Showing prefix of the site that has many prefixes is slow
### NetBox version

v3.0.3

### Python version

3.9

### Steps to Reproduce

1. Add a site and some prefixes under the site. (The site has 48 prefixes in our environment, and some of them have some child prefixes. One of them has over 30 child prefixes.)
2. Click site from the left menu, select the added site, click prefix on the right corner of the site page.


### Expected Behavior

The prefix page of the site shows within seconds.

### Observed Behavior

It took around 40 seconds to show 50 prefixes on a page.

Calculation of prefix utilization seems to consume a lot of execution time: after hiding the utilization bar (%) by "Configure Table," it took 1 second to show.
I'm preparing a Pull Request to optimize the utilization calculation.

diff --git a/netbox/ipam/models/ip.py b/netbox/ipam/models/ip.py
index 3e2e671ca..b5360a7b7 100644
--- a/netbox/ipam/models/ip.py
+++ b/netbox/ipam/models/ip.py
@@ -487,11 +487,9 @@ class Prefix(PrimaryModel):
             utilization = int(float(child_prefixes.size) / self.prefix.size * 100)
         else:
             # Compile an IPSet to avoid counting duplicate IPs
-            child_ips = netaddr.IPSet()
-            for iprange in self.get_child_ranges():
-                child_ips.add(iprange.range)
-            for ip in self.get_child_ips():
-                child_ips.add(ip.address.ip)
+            child_ips = netaddr.IPSet(
+                [_.range for _ in self.get_child_ranges()] + [_.address.ip for _ in self.get_child_ips()]
+            )
 
             prefix_size = self.prefix.size
             if self.prefix.version == 4 and self.prefix.prefixlen < 31 and not self.is_pool:
['netbox/ipam/models/ip.py']