The easiest and most understandable way to center the group is to make it a group by nesting the views within a ConstraintLayout that, itself, is nested in a ConstraintLayout as follows:
<android.support.constraint.ConstraintLayout
android:id="@+id/outerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.constraint.ConstraintLayout
android:id="@+id/innerLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
[A, B, and C views here...]
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
The outer layout could be another type of ViewGroup such as LinearLayout using gravity.
Other solutions are possible such as a creative use of chains, barriers or guidelines, but the simplicity of the outlined solution is the most attractive in my opinion.