Here's a solution that guarantees that the width of the combined header cell -- which currently contains bcbcbcbc, but which presumably is usually more informative -- is minimal, i.e., that the whitespace padding on either edge of the combined cell is equal to \tabcolsep. Observe that the solution employs the w column type rather than the c column type for columns 2 and 3; the w column type lets you state a required width.

\documentclass{article}
\usepackage{multirow,calc}
\usepackage{array} % for 'w' column type
\newlength\lenA \newlength\lenB
% Retrieve the usable width of the combined header cell:
\settowidth\lenA{bcbcbcbc}
% Compute the usable width of the underlying columns:
\setlength\lenB{(\lenA-2\tabcolsep-\arrayrulewidth)/2}
\begin{document}
\begin{table}
\begin{tabular}{ | c {2}{w{c}{\lenB}|} }
\hline
\multirow{2}{}{a} & \multicolumn{2}{c|}{bcbcbcbc} \
\cline{2-3}
& d & e \
\hline
\end{tabular}
\end{table}
\end{document}