Instead of adding the additional properties to the MSBuild command line, edit the project file and set the properties inside the project file. If needed, create a specific Configuration to put these in so that the deployment doesn't always happen in Visual Studio.
<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' == false">
<DeployOnBuild>true</DeployOnBuild>
<MSDeployTarget>MSDeployPublish</MSDeployTarget>
....
....
</PropertyGroup>
That way the project file will know when to deploy. If needed you can stick these items inside the Dev|AnyCPU PropertyGroup which is already present, but that way it will always build inside Visual Studio.
To be able to trigger deployment through the command line, you must make sure that each project listens to its own command line parameter.
<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' == false">
<DeployOnBuild Condition="'$(DeployDefaultWebsiteOnBuild)' == 'true'>true</DeployOnBuild>
<MSDeployTarget>MSDeployPublish</MSDeployTarget>
....
....
</PropertyGroup>
As you can see I've added a condition to the DeployOnBuild which will set it to true if DeployDefaultWebsiteOnBuild is set to true. Now you can set that property from the commandline.
/p:DeployDefaultWebsiteOnBuild=true