We have a similar situation but scaled to around 6 databases with circular references to each other. This occured due to bad practices over the years and we're cleaning this up over time. We reference dacpacs instead of database projects because we want to deploy each DB independently.
We worked around this a different way. You cant build your project to extract a dacpac file due to the circular references however you can extract the dacpac from the prod/target database itself. Once you have this you can reference the dacpac and build your project. Lets say you have DatabaseA reference DatabaseB. You extract DatabaseB initially and DatabaseA can now reference the DatabaseB's dacpac. You can now build DatabaseA. DatabaseB can now reference DatabaseA's dacpac. For each change you can update the dacpac after the build is successful so you no longer need to extract the dacpac files. Once you get the train moving this works out ok, its just the initial extraction thats required.
To reference the dacpac from DatabaseB we create a Nuget package from the build and in the DatabaseA project we download the latest Nuget package in a prebuild step to a known subfolder and reference the relative location..