Option 1:
If the printer is "disabled", then you can rectify that using the command:
cupsenable Canon-MG2900-series-2
Option 2:
The simplest that I can suggest is to use CUPS to report everything that it knows:
lpstat -t
or
lpstat -p Canon-MG2900-series-2 -a
Option 3:
If those don't work (if printer is indeed plugged in ... ), then you may need to restart the CUPS service:
systemctl restart cups
Option 4:
It could be an issue of "sharing" among computers on the same subnet. In that case, you need to use the command:
cupsctl --share-printers
But if you are sharing between subnets (printer on subnet 1, intervening router, computer on subnet 2), then you need to advise CUPS to share across networks using:
cupsctl --share-printers --remote-any
Option 5:
If none of those work, go back to the printer and re-check the connections, both electrical and network, at both the computer and wall/router.
If everything else fails, I would recommend you give a look at the information published on the CUPS information page at:
It may give you some additional insights on what to do, which I can't.
To obtain the IP of any device that is listening for streams on the CUPS port (631), you can request a report using:
nmap -p 631 -sV 192.168.1.0/24
or if you want more detail about what that did ...
nmap -p 631 -sV 192.168.1.0/24 -v
You may even want to hard-code that IP address, via the printer's front panel and configuration options, instead of letting it be dynamically assigned. It might simplify things if your issue persists.